require('dotenv').config({ path: '../.env' }); // 指定.env文件路径
const { pool } = require('../config/db');

// 添加缺少字段的SQL语句
const alterTableQuery = `
ALTER TABLE users
ADD COLUMN phone VARCHAR(20) DEFAULT NULL,
ADD COLUMN city VARCHAR(100) DEFAULT NULL,
ADD COLUMN housing_type VARCHAR(50) DEFAULT NULL,
ADD COLUMN family_members INT DEFAULT 1;
`;

async function updateDatabase() {
  let connection;
  try {
    connection = await pool.getConnection();
    console.log('成功连接到数据库。');

    console.log('开始更新用户表结构...');
    try {
      await connection.query(alterTableQuery);
      console.log('用户表结构更新成功，已添加以下字段：');
      console.log('- phone (VARCHAR(20)类型，可为空)');
      console.log('- city (VARCHAR(100)类型，可为空)');
      console.log('- housing_type (VARCHAR(50)类型，可为空)');
      console.log('- family_members (INT类型，默认值1)');
    } catch (error) {
      console.error('更新表结构失败:', error.message);
      // 如果字段已存在，则忽略错误
      if (error.message.includes('Duplicate column name')) {
        console.log('字段已存在，无需添加。');
      } else {
        throw error;
      }
    }

    console.log('数据库更新完成。');

  } catch (error) {
    console.error('数据库更新过程中发生错误:', error);
  } finally {
    if (connection) {
      connection.release();
      console.log('数据库连接已释放。');
    }
    await pool.end(); // 关闭连接池
    console.log('连接池已关闭。');
  }
}

updateDatabase(); 